// 注册、登陆、退出
var express = require("express");
var User = require("../models/user");
var md5 = require("blueimp-md5");
var router = express.Router();
var nodemailer = require("nodemailer");
var smtpTransport = require("nodemailer-smtp-transport");

const transporter = nodemailer.createTransport(
    smtpTransport({
        host: "smtp.qq.com", //代理商，这里写的qq的
        secure: true,
        port: 465,
        auth: {
            user: "869290983@qq.com", //授权邮箱
            pass: "risuavvkpzrebcbi" //// 这里密码不是qq密码，是你设置的smtp授权码
        }
    })
);

//验证用户名密码
router.post("/login", function (req, res) {
    // 1. 获取表单数据
    // 2. 查询数据库用户名密码是否正确
    // 3. 发送响应数据
    var body = req.body;
    User.findOne({
            name: body.name,
            password: md5(body.password)
        })
        .select("name password")
        .then(user => {
            if (!user)
                return res.json({
                    status: 500,
                    msg: "登录失败"
                });
            res.json({
                status: 200,
                user: user
            });
        })
        .catch(err => {
            console.log(err.message);
        });
});
//根据邮箱发送验证码
router.get("/register", function (req, res) {
    const body = req.query;
    // console.log(body[0]);
    var code = "";
    while (code.length < 5) {
        code += Math.floor(Math.random() * 10);
    }
    console.log(code);
    var mailOption = {
        from: "869290983@qq.com",
        to: body[0], //收件人
        subject: "上虞旅游信息管理平台注册校验码", //纯文本
        html: "<h1>欢迎注册苏云信息管理平台，您本次的注册验证码为：" + code + "</h1>"
    };

    transporter.sendMail(mailOption, function (error, info) {
        if (error) {
            res.json({
                status: 201
            });
            return console.info(error);
        } else {
            res.json({
                status: 200,
                code: code
            });
            // console.info("Message send" + code);5
        }
        transporter.close(); // 如果没用，关闭连接池
    });
});
//验证信息注册用户
router.post("/register", function (req, res) {
    // 1. 获取表单提交的数据
    //    req.body
    // 2. 操作数据库
    //    判断改用户是否存在
    //    如果已存在，不允许注册
    //    如果不存在，注册新建用户
    // 3. 发送响应
    var body = req.body;
    console.log(body);
    User.findOne({
            name: body.name
        })
        .then(user => {
            if (user)
                return res.json({
                    status: 500,
                    msg: "用户已存在"
                });
            User.create({
                    name: body.name,
                    password: md5(body.pass)
                })
                .then(user => {
                    res.json({
                        status: 200
                    });
                })
                .catch(err =>
                    res.json({
                        status: 500,
                        msg: err.message
                    })
                );
        })
        .catch(err => {
            console.log(err.message);
        });
});
//处理剩余的
router.use((err, req, res, next) => {
    //接受 next（err）
    // const err_log = `
    //   错误名：${err.name}
    //   错误消息：${err.message}
    //   错误堆栈：${err.stack}
    //   错误时间：${new Date()}`;
    // fs.appendFile("./err_log.txt", err_log, err => {
    //   res.writeHead(500, {});
    //   res.end("500, 服务器繁忙，请稍后重试");
    // });
    res.writeHead(500, {});
    res.end("500, 服务器繁忙，请稍后重试");
});

module.exports = router;